<?php

define('HASH_TYPE_SITE',	10);
define('HASH_TYPE_CATE',	20);
//define('HASH_TYPE_DOMAIN',	30);
//define('HASH_TYPE_XID',		40);

/**
 * 把一些以 id/value/desc 为属性的对象，统一存放到一个hash对象中集中管理
 * 
 * 本类提供一些基本的操作方法
 *
 */
class HashBase
{
	protected $_type;
	
	function getByValue($value)
	{
		return Db::get(__CLASS__)->select()->where(array('type'=>$this->_type, 'value'=>$value))->getOne();
	}
	
	function getById($hid)
	{
		return Db::get(__CLASS__)->select()->where(array('type'=>$this->_type, 'hid'=>$hid))->getOne();
	}
	
	function getIdByValue($value)
	{
		return Db::get(__CLASS__)->select('hid')->where(array('type'=>$this->_type, 'value'=>$value))->getCol();
	}
	
	function store($value, $desc='')
	{
		if(Db::get(__CLASS__)->insert(array('type'=>$this->_type, 'value'=>$value, 'desc'=>$desc))->exec())
			return Db::get(__CLASS__)->insertId();
		else
			return false;
	}
	
	function getList($begin=0, $limit=20)
	{
		return Db::get(__CLASS__)->select()->where(array('type'=>$this->_type))->order('hid ASC')->limit($begin, $limit)->getAll();
	}
	
}
?>